<?php

require_once("../../util/conexao.php");
$conexao = Conexao::conectar();

require_once("../../util/util.php");
require_once("regras/negocio/veiculoNegocio.php");
$objNegocio = new VeiculoNegocio();

if ($acao == "CADASTRAR") {

    if ($_POST) {

        $arrayDados = array();
        $arrayDados['placa'] = strtoupper(trim($_POST["txtplaca"]));
        $arrayDados['chassi'] = strtoupper(trim($_POST["txtchassi"]));
        $arrayDados['anofabricacao'] = trim($_POST["txtanofabricacao"]);
        $arrayDados['anomodelo'] = trim($_POST["txtanomodelo"]);
        $arrayDados['especie'] = trim($_POST["ddlEspecie"]);
        $arrayDados['marca'] = trim($_POST["ddlMarca"]);
        $arrayDados['modelo'] = trim($_POST["ddlModelo"]);
        $arrayDados['renavam'] = strtoupper(trim($_POST["txtrenavam"]));
        $arrayDados['cor'] = trim($_POST["ddlCor"]);
        $arrayDados['combustivel'] = trim($_POST["ddlCombustivel"]);
        $arrayDados['numeroMotor'] = strtoupper(trim($_POST["txtnumeromotor"]));
        $arrayDados['nome'] = strtoupper(trim($_POST["txtnome"]));
        $arrayDados['estado'] = trim($_POST["ddlEstado"]);
        $arrayDados['cidade'] = trim($_POST["ddlCidade"]);
        $arrayDados['bairro'] = strtoupper(trim($_POST["txtbairro"]));
        $arrayDados['rua'] = strtoupper(trim($_POST["txtrua"]));
        $arrayDados['corretor'] = strtoupper(trim($_POST["txtcorretor"]));
        $arrayDados['fornecedor'] = trim($_POST["ddlFornecedor"]);
        $arrayDados['dataCompra'] = Util::dataBd($_POST["txtdatacompra"]);


        if (!empty($_POST["txtcpf"])) {
            $arrayDados['cpfcnpj'] = $_POST["txtcpf"];
        } else {
            $arrayDados['cpfcnpj'] = $_POST["txtcnpj"];
        }

        $arrayDados['valorcorretagem'] = Util::moedaBd(trim($_POST["txtvalorcorretagem"]));
        if (empty($arrayDados['valorcorretagem']))
            $arrayDados['valorcorretagem'] = 0.00;

        $arrayDados['parcelas'] = trim($_POST["ddlparcelas"]);
        $arrayDados['dataParcela'] = $_POST["txtdataParcela"];
        $arrayDados['valorParcela'] = $_POST["txtvalorParcela"];


        if (!empty($_POST["txtvalorcompra"])) {
            $arrayDados['valorcompra'] = Util::moedaBd(trim($_POST["txtvalorcompra"]));
        } else {
            $arrayDados['valorcompra'] = 0.00;
        }

        if (!empty($_POST["txtvaloragenciamento"])) {
            $arrayDados['valoragenciamento'] = Util::moedaBd(trim($_POST["txtvaloragenciamento"]));
        } else {
            $arrayDados['valoragenciamento'] = 0.00;
        }

        $arrayDados['natureza'] = trim($_POST["ddlNatureza"]);
        $arrayDados['observacao'] = strtoupper(trim($_POST["txtobservacao"]));

        if ($_POST["rdencaminhar"] == "ESTOQUE") {

            $arrayDados["estoqueLoja"] = "S";
            $arrayDados["oficina"] = "N";
            $arrayDados['idloja'] = $_POST["ddlLoja"];
            $arrayDados['idoficina'] = 0;
        } else {
            $arrayDados["estoqueLoja"] = "N";
            $arrayDados["oficina"] = "S";
            $arrayDados['idloja'] = 0;
            $arrayDados['idoficina'] = $_POST["ddlOficina"];
        }

        if ($objNegocio->verificarExistenciaVeiculo($arrayDados['placa']) == 0) {

            Util::begin();
            list($retorno, $idVeiculo) = explode("$", $objNegocio->cadastrarVeiculo($arrayDados));

            if ($retorno) {

                if ($arrayDados['natureza'] == "1") { //COMPRA
                    list($retorno, $idMovimento) = explode("$", $objNegocio->cadastrarMovimento($arrayDados, $idVeiculo));

                    if ($retorno) {
                        $retorno = $objNegocio->cadastrarTitulo($arrayDados, $idMovimento, $idVeiculo);

                        if ($retorno) {

                            if ($arrayDados['idoficina'] > 0) {
                                $retorno = $objNegocio->encaminharVeiculoOficina($idVeiculo, $arrayDados['idoficina']);
                            }

                            if ($retorno) {
                                Util::commit();
                                echo "<script type='text/javascript'>window.location='veiculo.php?msg=sucesso'</script>";
                                die();
                            } else {
                                $class = "erro";
                                $mensagem = "falha ao tentar enviar veiculo para oficina";
                            }
                        } else {
                            $class = "erro";
                            $mensagem = "falha ao tentar cadastrar titulos";
                        }
                    } else {
                        $class = "erro";
                        $mensagem = "falha ao tentar cadastrar movimento";
                    }
                }
            } else {
                $class = "erro";
                $mensagem = "falha ao tentar cadastrar veículo";
            }
        } else {
            $class = "erro";
            $mensagem = "veículo já cadastrado";
        }

        Util::rollback();
    }
} elseif ($acao == "CADASTRAR-BASICO") {

    if ($_POST) {

        $arrayDados = array();
        $arrayDados['placa'] = strtoupper(trim($_POST["txtplaca"]));
        $arrayDados['especie'] = trim($_POST["ddlEspecie"]);
        $arrayDados['marca'] = trim($_POST["ddlMarca"]);
        $arrayDados['modelo'] = trim($_POST["ddlModelo"]);
        $arrayDados['cor'] = trim($_POST["ddlCor"]);
        $arrayDados['idoficina'] = $_POST["ddlOficina"];

        if ($objNegocio->verificarExistenciaVeiculo($arrayDados['placa']) == 0) {

            Util::begin();
            list($retorno, $idVeiculo) = explode("$", $objNegocio->cadastrarVeiculoBasico($arrayDados));

            if ($retorno) {
                $retorno = $objNegocio->encaminharVeiculoOficina($idVeiculo, $arrayDados['idoficina']);

                if ($retorno) {
                    Util::commit();
                    echo "<script type='text/javascript'>window.location='veiculo.php?msg=sucesso'</script>";
                    die();
                } else {
                    $class = "erro";
                    $mensagem = "falha ao tentar enviar veiculo para oficina";
                }
            } else {
                $class = "erro";
                $mensagem = "falha ao tentar cadastrar veículo";
            }
        } else {
            $class = "erro";
            $mensagem = "veículo já cadastrado";
        }

        Util::rollback();
    }
} elseif ($acao == "ATUALIZAR") {

    if ($_POST) {

        $arrayDados = array();
        $arrayDados['placa'] = strtoupper(trim($_POST["txtplaca"]));
        $arrayDados['chassi'] = strtoupper(trim($_POST["txtchassi"]));
        $arrayDados['anofabricacao'] = trim($_POST["txtanofabricacao"]);
        $arrayDados['anomodelo'] = trim($_POST["txtanomodelo"]);
        $arrayDados['especie'] = trim($_POST["ddlEspecie"]);
        $arrayDados['marca'] = trim($_POST["ddlMarca"]);
        $arrayDados['modelo'] = trim($_POST["ddlModelo"]);
        $arrayDados['renavam'] = strtoupper(trim($_POST["txtrenavam"]));
        $arrayDados['cor'] = trim($_POST["ddlCor"]);
        $arrayDados['combustivel'] = trim($_POST["ddlCombustivel"]);
        $arrayDados['numeroMotor'] = strtoupper(trim($_POST["txtnumeromotor"]));
        $arrayDados['nome'] = strtoupper(trim($_POST["txtnome"]));
        $arrayDados['estado'] = trim($_POST["ddlEstado"]);
        $arrayDados['cidade'] = trim($_POST["ddlCidade"]);
        $arrayDados['bairro'] = strtoupper(trim($_POST["txtbairro"]));
        $arrayDados['rua'] = strtoupper(trim($_POST["txtrua"]));
        $arrayDados['fornecedor'] = trim($_POST["ddlFornecedor"]);
        $arrayDados['dataCompra'] = Util::dataBd($_POST["txtdatacompra"]);
        $arrayDados['id'] = $_POST["hdCodigo"];
        $arrayDados['observacao'] = strtoupper(trim($_POST["txtobservacao"]));

        $arrayDados['gravameLiberado'] = $_POST["ddlGravameLiberado"];
        $arrayDados['obsGravame'] = strtoupper(trim($_POST["txtobsGravame"]));

        if (!empty($_POST["txtcpf"])) {
            $arrayDados['cpfcnpj'] = $_POST["txtcpf"];
        } else {
            $arrayDados['cpfcnpj'] = $_POST["txtcnpj"];
        }

        if ($objNegocio->verificarExistenciaVeiculoAtualizar($arrayDados['placa'], $arrayDados['id']) == 0) {

            $retorno = $objNegocio->atualizarVeiculo($arrayDados);

            if ($retorno) {
                echo "<script type='text/javascript'>window.location='veiculo.php?msg=sucessoact'</script>";
            } else {
                $class = "erro";
                $mensagem = "falha ao tentar atualizar veículo";
            }
        } else {
            $class = "erro";
            $mensagem = "veículo já atualizado";
        }
    } else {

        $codigo = $_GET["codigo"];
        if (is_numeric($codigo)) {
            $dadosVeiculo = $objNegocio->retornarDadosVeiculo($codigo);
            $cidades = Util::carregarCidadesDDL($dadosVeiculo->estado);
        } else {
            echo "<script type='text/javascript'>window.location='veiculo.php'</script>";
        }
    }
} elseif ($acao == "ATUALIZAR-BASICO") {

    if ($_POST) {

        $arrayDados = array();
        $arrayDados['placa'] = strtoupper(trim($_POST["txtplaca"]));
        $arrayDados['chassi'] = strtoupper(trim($_POST["txtchassi"]));
        $arrayDados['anofabricacao'] = trim($_POST["txtanofabricacao"]);
        $arrayDados['anomodelo'] = trim($_POST["txtanomodelo"]);
        $arrayDados['especie'] = trim($_POST["ddlEspecie"]);
        $arrayDados['marca'] = trim($_POST["ddlMarca"]);
        $arrayDados['modelo'] = trim($_POST["ddlModelo"]);
        $arrayDados['renavam'] = strtoupper(trim($_POST["txtrenavam"]));
        $arrayDados['cor'] = trim($_POST["ddlCor"]);
        $arrayDados['combustivel'] = trim($_POST["ddlCombustivel"]);
        $arrayDados['nome'] = strtoupper(trim($_POST["txtnome"]));
        $arrayDados['estado'] = trim($_POST["ddlEstado"]);
        $arrayDados['cidade'] = trim($_POST["ddlCidade"]);
        $arrayDados['bairro'] = strtoupper(trim($_POST["txtbairro"]));
        $arrayDados['rua'] = strtoupper(trim($_POST["txtrua"]));
        $arrayDados['corretor'] = strtoupper(trim($_POST["txtcorretor"]));
        $arrayDados['fornecedor'] = trim($_POST["ddlFornecedor"]);

        if (!empty($_POST["txtcpf"])) {
            $arrayDados['cpfcnpj'] = $_POST["txtcpf"];
        } else {
            $arrayDados['cpfcnpj'] = $_POST["txtcnpj"];
        }

        $arrayDados['valorcorretagem'] = Util::moedaBd(trim($_POST["txtvalorcorretagem"]));
        if (empty($arrayDados['valorcorretagem']))
            $arrayDados['valorcorretagem'] = 0.00;

        $arrayDados['parcelas'] = trim($_POST["ddlparcelas"]);
        $arrayDados['dataParcela'] = $_POST["txtdataParcela"];
        $arrayDados['valorParcela'] = $_POST["txtvalorParcela"];


        if (!empty($_POST["txtvalorcompra"])) {
            $arrayDados['valorcompra'] = Util::moedaBd(trim($_POST["txtvalorcompra"]));
        } else {
            $arrayDados['valorcompra'] = 0.00;
        }

        if (!empty($_POST["txtvaloragenciamento"])) {
            $arrayDados['valoragenciamento'] = Util::moedaBd(trim($_POST["txtvaloragenciamento"]));
        } else {
            $arrayDados['valoragenciamento'] = 0.00;
        }

        $arrayDados['natureza'] = trim($_POST["ddlNatureza"]);
        $arrayDados['observacao'] = strtoupper(trim($_POST["txtobservacao"]));
        $arrayDados['id'] = $_POST["hdVeiculo"];


        if ($objNegocio->verificarExistenciaVeiculo($arrayDados['placa']) > 0) {

            Util::begin();
            list($retorno, $idVeiculo) = explode("$", $objNegocio->atualizarVeiculoCadastroBasico($arrayDados));

            if ($retorno) {

                if ($arrayDados['natureza'] == "1") { //COMPRA
                    list($retorno, $idMovimento) = explode("$", $objNegocio->cadastrarMovimento($arrayDados, $idVeiculo));

                    if ($retorno) {
                        $retorno = $objNegocio->cadastrarTitulo($arrayDados, $idMovimento, $idVeiculo);

                        if ($retorno) {
                            Util::commit();
                            echo "<script type='text/javascript'>window.location='veiculo.php?msg=sucesso'</script>";
                            die();
                        } else {
                            $class = "erro";
                            $mensagem = "falha ao tentar cadastrar titulos";
                        }
                    } else {
                        $class = "erro";
                        $mensagem = "falha ao tentar cadastrar movimento";
                    }
                }
            } else {
                $class = "erro";
                $mensagem = "falha ao tentar atualizar veículo";
            }
        } else {
            $class = "erro";
            $mensagem = "veículo não cadastrado";
        }

        Util::rollback();
    } else {

        $idVeiculo = $_GET["codigo"];
        if (isset($idVeiculo) && !empty($idVeiculo) && is_numeric($idVeiculo) && ($idVeiculo > 0)) {
            $dadosVeiculo = $objNegocio->retornarDadosVeiculo($idVeiculo);
        }
    }
} elseif ($acao == "VALORES") {

    if ($_POST) {

        $arrayDados = array();
        $arrayDados["valorveiculo"] = Util::moedaBd($_POST["txtvalor"]);
        $arrayDados["valorveiculominimo"] = Util::moedaBd($_POST["txtvalorminimo"]);
        $arrayDados["idVeiculo"] = $_POST["hdCodigo"];

        if (!empty($arrayDados["valorveiculo"])) {

            if (empty($arrayDados["valorveiculominimo"])) {
                $arrayDados["valorveiculominimo"] = 0.00;
            }

            $retorno = $objNegocio->adicionarValorVendaVeiculo($arrayDados);

            if ($retorno) {

                echo "<script type='text/javascript'>window.location='veiculo.php?msg=sucessoval'</script>";
            } else {
                $class = "erro";
                $mensagem = "problema ao tentar inserir os valores do veículo";
            }
        } else {
            $class = "erro";
            $mensagem = "preencha o valor do veículo";
        }
    } else {

        $despesas = $objNegocio->despesasVeiculo($codigo);
        $dadosVeiculo = $objNegocio->retornarDadosVeiculo($codigo);
    }
} elseif ($acao == "OFICINA") {

    if ($_POST) {

        $arrayDados = array();
        $arrayDados["oficina"] = $_POST["ddlOficina"];
        $arrayDados["codigo"] = $_POST["hdCodigo"];

        $retorno = $objNegocio->atualizarStatusOficinaVeiculo($arrayDados);

        if ($retorno) {
            $retorno = $objNegocio->encaminharVeiculoOficina($arrayDados["codigo"], $arrayDados["oficina"]);

            if ($retorno) {
                echo "<script type='text/javascript'>window.location='../oficina/oficina.php?msg=sucessoFinalizar'</script>";
            } else {
                $class = "erro";
                $mensagem = "falha ao tentar enviar veículo a oficina";
            }
        } else {
            $class = "erro";
            $mensagem = "falha ao tentar atualizar o status do veiculo";
        }
    } else {

        $codigo = $_GET["codigo"];

        if (is_numeric($codigo)) {
            $dadosVeiculo = $objNegocio->retornarDadosVeiculo($codigo);
        } else {
            echo "<script type='text/javascript'>window.location='cliente.php'</script>";
        }
    }
} else {

    $arrayDados = array();

    if ((isset($_GET["hdPesquisar"])) && ($_GET["hdPesquisar"] == 1)) {

        if ($_GET["rdTipoPesquisa"] == "placa") {
            $arrayDados["tipo"] = "placa";
            $arrayDados["placa"] = trim($_GET["txtPlaca"]);
        } elseif ($_GET["rdTipoPesquisa"] == "chassi") {
            $arrayDados["tipo"] = "chassi";
            $arrayDados["chassi"] = trim($_GET["txtChassi"]);
        } elseif ($_GET["rdTipoPesquisa"] == "modelo") {
            $arrayDados["tipo"] = "modelo";
            $arrayDados["modelo"] = trim($_GET["ddlModelo"]);
        }

        $limite = 0;

        $veiculos = $objNegocio->retornaVeiculos($limite, $arrayDados);
    } else {
        $limite = 20;
        $veiculos = $objNegocio->retornaVeiculos($limite);
    }

    $veiculosCadIncompletos = $objNegocio->retornaVeiculosCadIncompletos();

    //MENSAGENS DE ALERTA
    if (isset($_GET["msg"])) {

        switch ($_GET["msg"]) {
            case 'sucesso':
                $mensagem = "veiculo cadastrado com sucesso";
                $class = "sucesso";
                break;
            case 'sucessoact':
                $mensagem = "veiculo atualizado com sucesso";
                $class = "sucesso";
                break;
            case 'sucessoval':
                $mensagem = "valores inseridos com sucesso";
                $class = "sucesso";
                break;
        }
    }
}

//CORRETORES
$corretores = Util::retornarCorretores();
//RECUPERAR ESTADOS	
$estados = Util::retornarEstados($conexao);
//FORNECEDORES
$fornecedores = Util::retornarFornecedores();
//ESPECIE
$especies = $objNegocio->retornarEspecieTipo();
//MARCA
$marcas = $objNegocio->retornarMarca();

if ($acao != "CADASTRAR") {
    //MODELOS
    $modelos = $objNegocio->retornarModelos();
}

//CORES
$cores = $objNegocio->retornarCores();
//LOJAS
$lojas = $objNegocio->retornarLojas();
//OFICINAS
$oficinas = $objNegocio->retornarOficinas();
?>